home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
ddj0897.zip
/
CCDBMS.ZIP
/
DBARRAY.H
< prev
next >
Wrap
C/C++ Source or Header
|
1997-03-18
|
2KB
|
50 lines
// =================================================================
// Dbarray.cpp
// =================================================================
// Harold Kasperink / John Dekker
// Dr. Dobb's Journal 1997
// =================================================================
// Multithreaded Database Array Singleton class
// =================================================================
#ifndef _DBARRAY_H_
#define _DBARRAY_H_
#include "dbase.h"
#define MAX_NR_DBASES 15
class CArrayDbase
{
private:
static CArrayDbase *g_pDbArray; // Pointer to global database connection
static CMutex g_mtxArray; // Mutex to make sure only one reserve/release at a time
CDbase* m_pDbases[MAX_NR_DBASES]; // Array of database connections
int m_nNrDbases; // Number of database connections
char* m_pszUsr; // User name
char* m_pszPsswd; // User password
char* m_pszDb; // Database connect string
int m_nCurCon; // Current connection
int m_nDbUsage[MAX_NR_DBASES]; // Usage status indicator
boolean m_bPrint; // Print usage flag
public:
CArrayDbase(int nNrConnections, const char *szUsr, const char *szPasswd, const char *szDB);
virtual ~CArrayDbase();
// Get pointer to free database connection
// and reserve database connnection
static CDbase* ReserveDbase();
// Release database connection
static void ReleaseDbase(CDbase &dbase);
private:
// Set connect information
void ConnectInfo(const char *szUsr, const char *szPasswd, const char *szDB);
void DeleteConnectInfo();
static void Lock();
static void Unlock();
};
#endif